package com.koicarp.agent.example.chatmodel;

import dev.langchain4j.model.chat.StreamingChatModel;
import dev.langchain4j.model.chat.request.ResponseFormat;
import dev.langchain4j.model.ollama.OllamaChatModel;
import dev.langchain4j.model.ollama.OllamaStreamingChatModel;

import java.time.Duration;
import java.time.temporal.TemporalUnit;

/**
 * @Author: liuxia
 * @CreateTime: 2025/9/12 下午9:48
 * @Description: chatModel构建参数介绍test
 */
public class OllamaChatBuilderParameterTest {
    public static void main(String[] args) {
        String modelName = "deepseek-r1:7b";          // 填入你刚刚下载的模型
        String baseUrl = "http://localhost:11434";     // ollama启动后的ip:port
        StreamingChatModel model = OllamaStreamingChatModel.builder()
                .baseUrl(baseUrl)
                .modelName(modelName)
                .temperature(1.0)                      	// 控制ai回复的随机性，较高的值会导致多样化的输出，较低的值则产生更确定的输出
                .responseFormat(ResponseFormat.JSON)    // 输出形式，
                .think(true)                            // 是否深度思考
                .returnThinking(true)                   // 是否返回思考过程
                .timeout(Duration.ofMinutes(10))        // 超时时间
                .build();

        OllamaChatModel.builder()
                .maxRetries(3)                           // 非流式模型，才有的最大api返回失败的重试次数
                .build();
        // 更多parameter配置见：https://docs.langchain4j.dev/integrations/language-models/ollama#parameters
    }
}
